Excel VBA Parts Collection Home Excel Reference Manual DownLoad My Profile
Menu Next Links Excel Function Manual Myself BBS


VBAの編集画面

 
 





編集画面各部の構成


 上図は、Excel2002のVBE画面です。VBEは、大きく分けると画面上部にあるメニュー部とその下のウインドウ表示部で構成されています。画面各部の名称とその機能は下表のとおりです。

メニュー部
タイトルバー  画面最上部は「タイトルバー」といい、利用ソフト名、プロジェクト名、オブジェクト名が表示されます。
メニューバー  メニューが文字で書かれている部分です。
 タイトルバーの右端部分はExcelと同じように、「最小化」「元に戻す(縮小)」「閉じる」の各ボタンが配置されています。
ツールバー  アイコンボタンが並んでいる部分がツールバーです。
ウインドウ表示部
プロジェクト
エクスプローラ
 現在開かれているプロジェクト(ブック)の一覧、および各プロジェクトに含まれているワークシート、フォーム、モジュールなどのオブジェクトを階層的に表示し、管理するツールです。
プロパティ
ウインドウ
 選択されたオブジェクト、フォームまたはコントロールの様々なプロパティの設定可能な項目を設定・表示・変更するウインドウです。
コード
ウインドウ
 コードを記述し、表示・編集するためのウインドウです。コードはモジュールをここに表示して記述しますが、モジュールには「標準モジュール」「クラスモジュール」の他、「ワークシート」「フォーム」に付属するモジュールがあります。
イミディエイト
ウインドウ
 このウインドウ内でコードを入力し、「Enter」キーを押すと、そのコードを直接実行することができます。
ローカル
ウインドウ
 実行中のマクロで宣言されているすべての変数とその値を自動的に表示します。
ウオッチ
ウインドウ
 プログラムでウオッチ式が定義されると自動的に表示され、変数の値や式の値を確認することができます。





ウインドウの表示


 各種のウインドウを開くには、VBE画面のメニュー「表示(V)」をクリックするとウインドウ名の一覧が表示されますので、表示したいウインドウ名をクリックします。

 マクロを記述するために最低限必要なウインドウは「プロジェクトエクスプローラ」と「プロパティウインドウ」です。コードウインドウは、モジュールやユーザーフォームが表示される場所で、メニューにはありません。ここで少しエクスプローラの使い方について説明しましょう。


1 アイコンボタン

 図の左上にアイコンボタンが3つ並んでいますが、それぞれの名称は、左から「コードの表示」「オブジェクトの表示」「フォルダの切り替え」です。

(1) コードの表示
 ワークシートオブジェクト、ThisWorkbook、ユーザーフォーム、標準モジュールのどれかをクリックしてから「コードの表示ボタン」をクリックすると、該当のモジュールが表示されます。
 なお、該当のオブジェクトをダブルクリックすることによってもコードを表示することができます。

(2) オブジェクトの表示
 ユーザーフォームが作成されているときに、ワークシートオブジェクトをクリックしてから「オブジェクトの表示」ボタンをクリックすると、Excel画面に切り換わってワークシートが表示されます。また、ユーザーフォームをクリックしてから「オブジェクトの表示」ボタンをクリックすると、コードウインドウにユーザーフォームが表示されます。

(3) フォルタの切り替え
 「フォルダの切り替え」ボタンをクリックすると、プロジェクトエクスプローラでのオブジェクトの表示方法が変わります。
 フォルダマークの左にある「-」「+」のマークをクリックすると、フォルダ内のオブジェクトが表示されたり、非表示になったりします。


2 プロジェクト名

 「VBAProject (Book1)」と書かれている部分がプロジェクト名です。プロジェクト名は、ブック名と同じ名前です。

3 ワークシートオブジェクト

 Excelで作成されたワークシートが表示されています。Sheet1 (Sheet1) と書かれている左側のSheet1 がオブジェクト名、( ) 内に書かれている Sheet1 がシート名を表しています。
 ワークシートオブジェクトをダブルクリックすると、シートに付属しているモジュールをコードウインドウに表示することができます。

4 ThisWorkbook

 「ThisWorkbook」は、ワークブックを開いたときや閉じたとき、シートをクリックしたりしたときなどに自働的に実行されるイベントマクロを記述するモジュールです。ここをダブルクリックすると、コードウインドウに「ThisWorkbook」のモジュールが表示されます。

5 ユーザーフォーム(UserForm)

 ユーザーフォーム(UserForm)とは、ユーザーが自由に作成できるウインドウやダイアログボックスの総称です。作成されたユーザーフォームの名前をダブルクリックすると、コードウインドウに該当のユーザーフォームが表示されます。

6 標準モジュール

モジュールとは、VBAのコードを記録する場所(シート)のことを言います。一般的なプログラムは標準モジュールに記述されます。ここをダブルクリックすると、コードウインドウに「標準モジュール」が表示されます。






モジュールとプロシージャ


1 標準モジュールの挿入

 一般的なマクロは「標準モジュール」に記述します。「標準モジュール」をコードウインドウに表示するには、VBEメニューの「挿入(I)」を選択して、「標準モジュール(M)」をクリックします。

 最初に「標準モジュール」を挿入したときは、プロジェクトエクスプローラに「標準モジュール」フォルダとともに挿入したモジュールのオブジェク名(Module1)が表示されます。 2つ目以降のモジュールを挿入したときは、Module2、Module3・・・というように自働的に連番が付されます。

 標準モジュールの名前(オブジェクト名)を変更するには、標準モジュールをクリック後、VBEメニューの「表示(V)」「プロパティウインドウ(W)」をクリックして表示されたウインドウの(オブジェクト名)の右の文字を変更します。


2 モジュールの構成

 モジュールとは、VBAのコード(プログラム)を記録する場所のことをいい、上図のようにモジュールの最上部に変数が宣言される領域のことを特に宣言セクション(変数宣言領域)と呼んでいます。
 
(1) 変数宣言領域
 変数はその種類と記述された場所により有効範囲が異なります。宣言セクションは、複数のプロシージャに有効な変数の使用を宣言する領域で、モジュールの最上部に変数の宣言を行います。
 なお、宣言領域は予め範囲が決まっているわけではなく、最初のプロシージャの上に変数の宣言が行なわれた領域という意味に解すればいいでしょう。
 
 この領域で DIM 変数を使用すると記述されたモジュール内のすべてのプロシージャで有効となり(モジュールレベル変数)、Public 変数を使用するとプロジェクト(ブック)内のすべてのプロシージャが有効範囲となります(プロジェクトレベル変数)。
 変数の適用範囲と有効期間については次項で詳しく説明しますので参照してください。
 
(2) プロシージャ領域
 上図の「Sub Progn( ) ・・・ End Sub」と書かれている部分がプロシージャです。
 
3 プロシージャの構成

 プロシージャは、1つのプログラムのまとまりをいい、「Sub <マクロ名> ( )」で始まり、「End Sub」で終わります。上図では、罫線の下から次の罫線までの間が1つのプロシージャに相当します。
 マクロ名の右にある ( ) は、他のプロシージャとの間で変数などの受渡しがあるときに、該当の変数などを指定する場所で、通常は ( ) 内には何も記述しません。

4 プロシージャの作成方法

 プロシージャを作成するには、[プロシージャの追加] ダイアログ ボックスを使用する場合と、手入力でコードを記述して作成する場合の2つの方法があります。

(1) [プロシージャの追加] ダイアログ ボックスを使用してプロシージャを作成する
 ・プロシージャを記述するモジュールを開きます。
 ・VBEの[挿入] メニューの [プロシージャ] をクリックします。
 ・[プロシージャの追加] ダイアログ ボックス(下図)の [名前] ボックスにプロシージャの名前を入力します。


[ 図の説明 ]

項目名 設        定        内        容
名  前 プロシージャの名前をボックスに入力します。
種  類 作成するプロシージャの種類を指定します。
Sub プロシージャ Sub プロシージャを新規作成します。
Function プロシージャ Function プロシージャを新規作成します。
Property プロシージャ Let プロパティと Get プロパティのペアのプロシージャを新規作成します。
適用範囲 プロシージャの適用範囲を Public または Private に設定します。
すべてのローカル変数を Static にする・・・・・チェックボックスをオンにすると、プロシージャ定義に Static キーワードを追加します。

 上記により、作成したプロシージャ(名前を「Test1」とした。)
   Public Sub Test1()
     ( ここに処理を行うコードを記述します )
   End Sub

(2) コードを記述してプロシージャを作成する
 下記では、Sub プロシージャの作成方法を説明します。(名前を「Test2」とする。)
 ・プロシージャを記述するモジュールを開きます。 
 ・「Sub」に続けて半角スペースを1字分入力し、マクロ名を入力後、リターンキーを押すだけです。
 ・自動的にマクロ名の次に ( ) が表示され、空白行が1行分挿入された下に「 End Sub」 を表示します。

 上記により、作成したプロシージャ
   Sub Test2()
     ( ここに処理を行うコードを記述します )
   End Sub

5 マクロ名と変数の名前付け規則

 モジュールで、プロシージャ、定数、変数に名前を付ける場合、次の規則に従います。
 ・名前の先頭は文字でなければなりません。
 ・名前にはスペース、ピリオド (.)、感嘆符 (!)、および @、&、$、# などの文字を使うことはできません。
 ・名前は 255 文字 (半角の場合) 以内でなければなりません。
 ・関数、ステートメント、およびメソッドと同じ名前を使うことはできません。
 ・同じレベルの適用範囲内で、同じ名前を使用することはできません。
 ・通常、大文字と小文字は区別されませんが、名前を宣言するステートメントの大文字は保持されます。

6 複数行のステートメントの作成

 ステートメント(処理を記述するコード)は、通常、1 行に記述できますが、行継続文字を使用してステートメントを次の行に続けることができます。
 行継続文字の利用方法は、次行に分割したいコードの位置に半角スペースを1字分入力してから「 _ (アンダースコア)」を入力し、リターンキーを押します。

元のコード
Sub Test3()
Worksheets("Sgeet1").Range("A1").Sort Key1:=Range("A2"),Order1:=xlDescending,Key2:=Range("B2"),Order2:=xlDescending,Header:=xlGuess, OrderCustom:=1, MatchCase:=False,Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub

行継続文字の使用例
Sub Test3()
  Worksheets("Sgeet1").Range("A1").Sort _
    Key1:=Range("A2"),Order1:=xlDescending, _
    Key2:=Range("B2"),Order2:=xlDescending, _
    Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
    Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End Sub







PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル